\section{Herramientas}

En este apartado se describen las principales herramientas que se han utilizado para el PFG, únicamente las relacionadas con la planificación y gestión del mismo.

\subsection{Asana}
\label{sec:2-7-Asana}

Asana \footnote{Sitio web de Asana: \url{http://www.asana.com}} es la plataforma de planificación que se utiliza dentro del proyecto WebMakeUp entre los 4 integrantes. Asana es un sitio web que utiliza el grupo Onekin para poder trabajar con tareas, deadlines, insertar comentarios, compartir ficheros de distintos servicios de nube (Dropbox, GoogleDrive, Box,...) en equipo. Su utilización es bien sencilla, en la Figura \ref{fig:2-Asana} observamos la interfaz principal, en la cual se hace todo el trabajo. 

Asana permite tener varios proyectos en el mismo repositorio, en este caso en la imagen se observa el proyecto WebMakeUp. En el panel marcado de color amarillo están las tareas generales actualmente en el proyecto. Estas tareas, haciendo click en una de ellas se despliega toda la información en la parte derecha. Arriba se definen las subtareas y el deadline (resaltado de color rojo). En el centro (resaltado de azul) están los ficheros compartidos por los miembros del grupo en esta tarea. Por último, en la parte inferior (resaltado de verde) podemos realizar comentarios y hacer follow (abonarse a que nos informen de los cambios en esta tarea).

Esta plataforma permite una gestión rápida y sencilla de todo el trabajo, es sencillo para los usuarios y para que el director pueda hacer un seguimiento y control.
\begin{figure}
\begin{center}
\includegraphics[width=0.95\textwidth]{figs/2-Asana.png}
\end{center}
\caption{Plataforma de TeamWork Asana}
\label{fig:2-Asana}
\end{figure}

\subsection{Wiki}
\label{sec:2-7-Wiki}

Para describir qué es una wiki, simplemente poner a Wikipedia como ejemplo nos puede servir. En Wikipedia, al igual que en cualquier wiki, hay artículos sobre diferentes cosas, donde los diferentes usuarios de ella pueden colaborar cambiando o adaptando ese contenido según dispongan de información. Esta herramienta es colaborativa y permite escribir artículos con una sintaxis bastante sencilla y además de manera concurrente entre más de un usuario.

En este PFG en concreto, Onekin ha ofrecido su wiki orientada a los PFG que dispone con tal de que se pudiera ir documentando ciertos aspectos del mismo, herramientas, librerías, actas de reuniones, DOP, etc.

\subsection{Gestión de tareas en access}
\label{sec:2-7-Access}

Cómo parte del control exhaustivo que se ha decidido llevar a lo largo del proyecto y con tal de ir mejorando paulatinamente los procesos, las estimaciones con tal de garantizar que se podía cumplir con los objetivos propuestos en el proyecto. Para ir haciendo planificaciones, obtener estadísticas y realizar un seguimiento y control adecuado se necesitaba de un sistema gestión de tareas más potente que lo que se utiliza en clase. Para ello existen muchas herramientas predefinidas con tal cometido, pero tras hacer un pequeño estudio de las mismas se decidió hacer una herramienta a medida, que no solo es útil en este proyecto, si no que lo puede ser en muchos más que se planteen en el futuro. Esta herramienta desarrollada de manera personal tenía que cubrir las siguientes necesidades:
\begin{itemize}
\item{No requerir mucho tiempo de desarrollo.}
\item{Interfaz sencilla y usable.}
\item{Obtención de estadísticas de manera que se reflejara el avance de las tareas y que se cumplieran.}
\end{itemize}

Al principio se empezó a realizar este control en Microsoft Excel, dado que ofrecía una manera sencilla de representarlo, el coste de desarrollo fue minimo, se veían claro todos los datos y se podían obtener gráficas y estadísticas de manera sencilla. Pero a medida que avanzaba el proyecto, se iba viendo que no era escalable, faltaba relación de datos (si una tarea se había hecho en diferentes días o no) y además se detectó que no había manera de representar tareas aplazadas a otras fechas y esto era importante para resolver una de las métricas del control de calidad que se había propuesto. Por estas 2 razones, se decidió exportar esta gestión a Microsoft Access y su uso mediante formularios, con los que ya se había trabajado de antes y era sencilla su implementación. En la Figura \ref{fig:2-AccessPlanificacionGestion} se puede observar cómo se dispone de un sencillo formulario para computar todas las planificaciones, seguimiento y aplazamientos de las tareas. De igual manera mediante sencillas consultas SQL se definieron algunas vistas (o consultas en Access), por ejemplo para ver que tareas estaban sin finalizar u obtener estadísticas de tiempo invertido y en qué categoría del PFG.

\begin{figure}
\begin{center}
\includegraphics[width=0.95\textwidth]{figs/2-AccessPlanificacion.png}
(a)Planificación de las tareas, dividido por semanas.
\label{fig:2-AccessPlanificacion}
\includegraphics[width=0.95\textwidth]{figs/2-AccessSeguimiento.png}
(b)Seguimiento y control
\label{fig:2-AccessSeguimiento}

\caption{Sistema de gestión de tareas en Access desarrollado para el control de las tareas.}
\label{fig:2-AccessPlanificacionGestion}
\end{center}
\end{figure}

\subsection{\LaTeX{}}
\label{sec:2-7-Latex}

Tal y como lo describen en la página oficial de \LaTeX{} \footnote{Sitio web del proyecto \LaTeX{}: http://www.latex-project.org/} es un estándar \emph{de facto} para comunicar y publicar documentos de índole científica.

Las razones de utilizar \LaTeX en lugar de otras herramientas que se han ido utilizando a lo largo de los cursos académicos (como Open/LibreOffice o Microsoft Office):

\begin{itemize}
\item{Es un proyecto enorme y describirlo es complejo. Para ello modularizar la documentación es una buena práctica y con \LaTeX se puede hacer dividiéndolo en diferentes ficheros.}
\item{Hay que centrarse en las cosas a contar y no en el diseño o presentación del mismo, y en ese aspecto esta herramienta separa muy bien estos dos aspectos.}
\item{En los artículos cómo estándar se utiliza \LaTeX y aprender el cómo utilizarlo es importante por si se requieren usos del mismo en el futuro.}
\item{Al ser texto plano que posteriormente se procesa, permite una fácil integración con herramientas de control de versiones. En este caso se ha utilizado GIT con un repositorio en GoogleCode. El utilizar un sistema de control de versiones no es posible a día de hoy con casi cualquier otro tipo de procesador de textos.}
\item{No dependencia de servicios en nube. Por ejemplo, Google Drive cumplía con prácticamente el resto de requisitos, pero la dependencia de su servicio para poder documentar podía suponer algún riesgo, por ejemplo si el servicio dejaba de estar disponible.}
\end{itemize}

\subsection{GIT}
\label{sec:2-7-GIT}

GIT es un sistema de control de versiones distribuido. Se puede tanto trabajar en local cómo utilizar un repositorio, por ejemplo en la nube, con la que compartir con otra gente y poder trabajar en de manera conjunta. En este caso se han realizado 2 tipos de desarrollo donde GIT ha tenido cabida.

Por un lado el desarrollo de WebMakeUp utilizando BitBucket como servidor en nube, y por otro lado la documentación de la memoria, utilizando Google Code como servidor en nube.

Durante el proceso de planificación se vió que era claramente necesario para el desarrollo de software en equipo la necesidad de usar un control de versiones, dado que este nos resuelve muchos de los problemas que habitualmente se tienen cómo unión de versiones de trabajo por parte de los diferentes integrantes, log de cambios, respaldos de seguridad, etc.

Por tanto dado que apenas se había trabajado en estos aspectos a lo largo del Grado en Ingeniería Informática, era necesario innovar y aprender a utilizar esta herramienta.

\subsection{Google Code}
\label{sec:2-7-GoogleCode}
Google Code ofrece almacenamiento en nube de proyectos software. Permite compartirlos y disponer no solo de un repositorio GIT, Mercurial o Subversion, si no que además ofrece una Wiki y tramitación de incidencias. La principal ventaja frente a BitBucket es que el panel de administración es más sencillo, y al usarse para documentación donde solo hay un integrante era más conveniente utilizar esta plataforma. Google Code solo permite repositorios públicos, pero en este caso el abrir la documentación de este proyecto a cualquier usuario \footnote{Dirección del repositorio de google code con la memoria: \url{https://code.google.com/p/memoria-pfc/}} permite nutrirse del mismo. La documentación del proyecto está pública bajo licencia GNU GPLv2\footnote{Licencia GNU GPLv2: \url{http://www.gnu.org/licenses/old-licenses/gpl-2.0.html}}.

\subsection{BitBucket}
\label{sec:2-7-BitBucket}
BitBucket, al igual que Google Code admite los mismos tipos de repositorio, pero la principal diferencia es que este permite repositorios privados, es decir, que no sean públicos y que sólo los invitados puedan tener acceso al mismo. Esto era parte de los requisitos del propio WebMakeUp y por eso se decantó por este servicio.


\subsection{Dropbox}
\label{sec:2-7-Dropbox}
Dropbox es una plataforma de almacenamiento en nube. En este proyecto se ha usado esta herramienta como backuping de todo el sistema de información. La principal razón de su uso ha sido su fiabilidad y robustez, un cliente que permite sincronizar diferentes ordenadores/móviles con todos los ficheros actualizados no sólo ofreciendo backup en nube, si no en otros ordenadores que lo tengan sincronizado, no obligando en ningún momento a depender de la plataforma en caso de caída.


\subsection{GoJS}
\label{sec:2-7-GoJS}

Algunos de los diagramas que se han utilizado en la memoria, como el diagrama de GANTT (Figura \ref{fig:2-Gantt}) y el organigrama de miembros de WebMakeUp (Figura \ref{fig:2-OrganigramaEquipo}), están hechos con esta librería de Javascript. Esta librería ha sido utilizada a lo largo del propio proyecto para describir los diagrama de transición de estados en WebMakeUp y también se ha utilizado para poder generar parte de esta documentación, lo que valida aún más que el uso de ciertos elementos en WebMakeUp también pueden ser completamente válidos en otros muchos ámbitos no relacionados con desarrollo, en este caso en poder generar parte de la documentación.